<?php

App::uses('AppController', 'Controller');

class AlunoEventosController extends AppController {
	
	public function alterar($id = null){
		
		$this->set('title_for_layout', 'Eventos do Aluno :: Alterar');
		
		if ($this->request->data){
			if ($this->AlunoEvento->save($this->request->data)){
				$this->Session->setFlash('Dados atualizados com sucesso.', 'default', array('class' => 'flashOk'));
				$this->redirect(array('action' => 'grid_eventos', $this->request->data['AlunoEvento']['aluno_id']));
			} else {
				$this->Session->setFlash('Erro ao tentar atualizar.', 'default', array('class' => 'flashError'));
			}
		}else{
			$this->AlunoEvento->id = $id;
			$this->request->data = $this->AlunoEvento->read();
		}
		
		$this->set('eventos',    $this->AlunoEvento->Evento->find('list', array('order' => 'nome')));
		$this->set('meses',      $this->AlunoEvento->carregar_mes());
		$this->set('nome_aluno', $this->AlunoEvento->Aluno->field('nome', array('id' => $this->request->data[$this->modelClass]['aluno_id'])));
		
	}
		
	public function excluir($id = null){
		
		try {
			$this->{$this->modelClass}->delete($id);
			$this->Session->setFlash('Registro excluído com sucesso!', 'default', array('class' => 'flashOk'));
		} catch (Exception $e) {
			$this->Session->setFlash('Não é possível excluir porque existem referências no sistema!', 'default', array('class' => 'flashError'));
		}
		
		$this->redirect($this->referer());

	}	
	
	public function grid_eventos($aluno_id = null){
		
	  $this->set('aluno_id', $aluno_id);
	  $this->set('nome_aluno', $this->AlunoEvento->Aluno->field('nome', array('id' => $aluno_id)));
	  
	 }
	
	public function grid($aluno_id = null) {

		$this->autoRender = false;

		$conditions['aluno_id'] = $aluno_id;
		
		if ($this->request->data['query'] != '') {
			$conditions[$this->request->data['qtype'] . ' ILIKE'] = '%' . str_replace(' ', '%', $this->request->data['query']) . '%';
		}

		$this->paginate = array(
            'page' => $this->request->data['page'],
            'limit' => $this->request->data['rp'],
            'order' => array($this->request->data['sortname'] => $this->request->data['sortorder']),
            'conditions' => $conditions,
			'recursive' => 0
		);

		$results = $this->paginate($this->modelClass);

		$data = array();
		$data['page'] = $this->request->data['page'];
		$data['total'] = $this->{$this->modelClass}->find('count', array('conditions' => $conditions));
		$data['rows'] = array();
		
		$meses = $this->AlunoEvento->carregar_mes();		

		foreach($results as $rs) {
			$data['rows'][] = array(
		        'id' => $rs['AlunoEvento']['id'],
		        'cell' => array(
					$rs['AlunoEvento']['id'],
					$rs['Evento']['nome'],
					$rs['AlunoEvento']['ano'],
					$meses[$rs['AlunoEvento']['mes_inicial']],
					$meses[$rs['AlunoEvento']['mes_final']],
					$rs['AlunoEvento']['valor'],
				)
			);
		}

		return json_encode($data);
	}
	
	public function imprimir() {
		
		$this->set('title_for_layout', 'Eventos dos Alunos :: Imprimir');
		
		$this->set('meses', $this->AlunoEvento->carregar_mes());
		$this->set('eventos', $this->AlunoEvento->Evento->find('list', array('order' => 'nome')));
				
		if ($this->request->data) {
			
			$options['conditions']['ano'] = $this->request->data['AlunoEvento']['ano'];

			if ($this->request->data['AlunoEvento']['evento_id']) {
				$options['conditions']['evento_id'] = $this->request->data['AlunoEvento']['evento_id'];
			}
			
			if ($this->request->data['AlunoEvento']['mes_inicial']) {
				$options['conditions']['mes_inicial >='] = $this->request->data['AlunoEvento']['mes_inicial'];
			}
			
			if ($this->request->data['AlunoEvento']['mes_final']) {
				$options['conditions']['mes_final <='] = $this->request->data['AlunoEvento']['mes_final'];
			}
			
			$options['recursive'] = 0;
			$options['order'] = 'Aluno.nome';
			
			$aluno_eventos = $this->{$this->modelClass}->find('all', $options);
			
			$this->set('aluno_eventos', $aluno_eventos);
			$this->set('filtros', $this->request->data);
			
			$this->layout = 'relatorio_padrao';
			$this->render('rel_aluno_eventos');
		}		
	}
	
	public function incluir($aluno_id = null){
		
		$this->set('title_for_layout', 'Eventos dos Alunos :: Incluir');
		
		$this->set('aluno_id', $aluno_id);
		
		if ($this->request->data){
		
			if ($this->AlunoEvento->save($this->request->data)){
				$this->Session->setFlash('Dados incluídos com sucesso.', 'default', array('class' => 'flashOk'));
				$this->redirect(array('action' => 'grid_eventos', $aluno_id));
			} else {
				$this->Session->setFlash('Erro ao tentar incluir.', 'default', array('class' => 'flashError'));
			}
		}
		
		$this->set('eventos',    $this->AlunoEvento->Evento->find('list', array('order' => 'nome')));
		$this->set('meses',      $this->AlunoEvento->carregar_mes());
		$this->set('nome_aluno', $this->AlunoEvento->Aluno->field('nome', array('id' => $aluno_id )));
		
	} 
	
	public function index() {
		
		$this->set('title_for_layout', 'Eventos dos Alunos');
		
	}

}
